跳到主要内容

1.10 移位寄存器

触发器可以存储单个比特的二进制数据,即1或0。但如果需要存储多位数据,就需要多个触发器。由于单个触发器用于存储1位数据,因此将n个触发器连接在一起可以存储n位数据。在数字电子学中,寄存器是一种用于存储信息的设备。

寄存器由多个触发器组成,用于存储多位数据。例如,如果计算机需要存储16位数据,则需要一组16个触发器。寄存器的输入和输出可以是串行或并行的,具体取决于需求。

寄存器存储的数据位序列称为“字节”或“字”,其中1个字节由8位组成,1个字由16位(或2个字节)组成。

当多个触发器串联连接时,这种排列被称为寄存器。存储的信息可以在寄存器之间传输,这些被称为“移位寄存器”。移位寄存器是一种时序电路,它存储数据,并在每个时钟周期将数据移向输出。

移位寄存器主要有4种类型:

  • 串行输入串行输出移位寄存器(Serial In Serial Out,SISO)
  • 串行输入并行输出移位寄存器(Serial In Parallel Out,SIPO)
  • 并行输入串行输出移位寄存器(Parallel In Serial Out,PISO)
  • 并行输入并行输出移位寄存器(Parallel In Parallel Out,PIPO)

串行输入串行输出移位寄存器(SISO)

这种寄存器的输入以串行方式给出,即通过单条数据线逐位输入,输出也以串行方式收集。数据只能向左或向右移动,因此它被称为串行输入串行输出移位寄存器,或SISO移位寄存器。

随着数据从右侧逐位输入,移位寄存器将数据位向左移动。一个4位的SISO移位寄存器由4个触发器组成,仅需3个连接。

将数据位向左移动的寄存器被称为“左移寄存器”。

将数据位向右移动的寄存器被称为“右移寄存器”。

示例:如果我们向数据输入端输入数据1101,移位后的输出将是0110。

串行输入串行输出移位寄存器的框图如下所示。

alt text

这种寄存器是四种类型中最简单的。由于时钟信号连接到所有4个触发器,串行数据连接到最左侧或最右侧的触发器。第一个触发器的输出连接到下一个触发器的输入,依此类推。移位寄存器的最终输出在最外侧的触发器处收集。

使用D触发器的串行输入串行输出移位寄存器如下所示。

alt text

在上图中,我们看到的是移位右移寄存器;从触发器排列的左侧输入串行数据。

在这种移位寄存器中,当时钟信号被施加且串行数据被输入时,每次只会在输出端按输入数据的顺序提供一个比特。SISO移位寄存器的主要用途是作为临时数据存储设备。但SISO的主要用途是作为延迟元件。

串行输入并行输出移位寄存器(SIPO)

这种寄存器的输入以串行方式给出,输出以并行方式收集。

串行输入并行输出移位寄存器的框图如下所示。

alt text

除了时钟信号外,清除(CLR)信号还连接到所有4个触发器,以复位它们,串行数据连接到一端的触发器(取决于是左移寄存器还是右移寄存器)。第一个触发器的输出连接到下一个触发器的输入,依此类推。所有触发器都连接到一个公共时钟。

使用D触发器的串行输入并行输出移位寄存器如下所示。

alt text

与串行输入串行输出移位寄存器不同,串行输入并行输出(SIPO)移位寄存器的输出在每个触发器处收集。Q1Q_1Q2Q_2Q3Q_3Q4Q_4分别是第一、第二、第三和第四个触发器的输出。

串行输入并行输出移位寄存器的主要应用是将串行数据转换为并行数据。因此,它们被用于通信线路中,需要将数据线解复用为多条并行线。

并行输入串行输出移位寄存器(PISO)

这种寄存器的输入以并行方式给出,即数据分别输入到每个触发器,输出在末端触发器的输出处以串行方式收集。

并行输入串行输出移位寄存器的框图如下所示。

alt text

时钟输入直接连接到所有触发器,但输入数据分别通过每个触发器输入端的多路复用器(MUX)连接到每个触发器。这里,D1D_1D2D_2D3D_3D4D_4是移位寄存器的各个并行输入。在这种寄存器中,输出以串行方式收集。

使用D触发器的并行输入串行输出移位寄存器如下所示。

alt text

前一个触发器的输出和并行数据输入连接到MUX的输入端,MUX的输出连接到下一个触发器。并行输入串行输出(PISO)移位寄存器将并行数据转换为串行数据。因此,它们被用于通信线路中,需要将多条数据线复用为单条串行数据线。

并行输入并行输出移位寄存器(PIPO)

在这种寄存器中,输入以并行方式给出,输出也以并行方式收集。清除(CLR)信号和时钟信号连接到所有4个触发器。数据分别输入到每个触发器,并且同样,输出也分别从每个触发器收集。

并行输入并行输出移位寄存器的框图如下所示。

alt text

上述图示展示了4级并行输入并行输出寄存器。QaQ_aQbQ_bQcQ_cQdQ_d是并行输出,而PaP_aPbP_bPcP_cPdP_d是个别并行输入。这四个触发器之间没有任何互连。

使用D触发器的并行输入并行输出移位寄存器如下所示。

alt text

并行输入并行输出(PIPO)移位寄存器用作临时存储设备,也像SISO移位寄存器一样用作延迟元件。

环形计数器

通过将第一个触发器的输出连接到下一个触发器的输入,并将最后一个触发器的输出再次连接到第一个触发器的输入,像反馈路径一样,设计了环形计数器。因此,它被称为“环形计数器”。

环形计数器的真值表如下所示。

alt text
alt text

第一个触发器连接到高输入,即其输入被预置为逻辑1,第一个触发器的输出连接到第二个触发器的输入,依此类推。

最后,最后一个触发器的输出反馈作为第一个触发器的输入。当我们对这个排列施加第一个时钟脉冲时,第二阶段的输入变为1,其余输入为0。这样,输入1在环中旋转。

其他类型的寄存器

除了上述寄存器类型外,还有其他类型的寄存器,如下所示。

  • 双向移位寄存器
  • 通用移位寄存器

这些寄存器也在数字电子学的许多应用中使用。

双向移位寄存器

如果我们将一个二进制数向左移动一个位置,这个操作相当于将原始数字乘以2。同样,如果我们将一个二进制数向右移动一个位置,这个操作相当于将原始数字除以2。

因此,为了执行这些数学运算,我们需要一个可以双向移位的移位寄存器。这可以通过双向移位寄存器实现。

上述所有移位寄存器都是单向移位寄存器,即它们只向右或只向左移位数据。

双向移位寄存器可以定义为“可以在左或右方向移位数据的寄存器”。这种寄存器具有右移或左移的模式输入、时钟信号和两个串行数据线,分别用于输入和输出。

模式输入将控制左移和右移操作。如果模式输入为高电平(1),则数据将向右移动。同样,如果模式输入为低电平(0),则数据将向左移动。使用D触发器的双向移位寄存器的电路如下所示。

alt text

输入串行数据连接到电路的两端(连接到与门1和8)。根据模式输入是高还是低,只有一个与门(1或8)处于活动状态。

当模式输入为高电平(右/左’ = 1)时,串行数据路径为

与门1 - 或门1 - 触发器1 - Q1Q_1 - 与门2 - 或门2 - 触发器2 - Q2Q_2 - 与门3 - 或门3 - 触发器3 - Q3Q_3 - 与门4 - 或门4 - 触发器4 - Q4Q_4(串行数据输出)。

当模式输入为低电平(右/左’ = 0)时,串行数据路径为

与门8 - 或门4 - 触发器4 - Q4Q_4 - 与门7 - 或门3 - 触发器3 - Q3Q_3 - 与门6 - 或门2 - 触发器2 - Q2Q_2 - 与门5 - 或门1 - 触发器1 - Q1Q_1(串行数据输出)。

通用移位寄存器

通用移位寄存器可以定义为“能够双向移位数据(左移和右移)并能够加载并行数据的寄存器”。

这种寄存器可以执行以下三种操作:

  • 并行加载
  • 左移
  • 右移

这意味着,通用移位寄存器可以并行存储数据,并行传输数据。同样,数据也可以通过左移和右移操作通过串行路径存储和传输。

简单来说,通用移位寄存器可以以串行或并行方式加载数据,并根据需要以串行或并行方式输出数据。它被称为通用移位寄存器,因为它可以用于左移、右移、串行到串行、串行到并行、并行到串行和并行到并行的操作。

构造

观察以下通用移位寄存器的逻辑门表示。模式输入直接连接到多路复用器(MUX)输入,反向模式输入(使用非门)连接到上层触发器的输入。

输入D1D_1D2D_2D3D_3D4D_4并行连接,输出Q1Q_1Q2Q_2Q3Q_3Q4Q_4并行收集。它有一个串行输入引脚,用于将数据输入寄存器,用于左移和右移。4位通用移位寄存器的逻辑图如下所示。

alt text

4位双向通用移位寄存器的电路图如下所示。

alt text

工作原理

模式输入连接到高电平(MODE = 1),以并行方式加载数据。对于串行移位,模式输入连接到低电平(MODE = 0)。

当模式引脚连接到地时,通用移位寄存器将作为双向移位寄存器运行。

  • 要将数据向右移位,输入连接到第一个触发器的与门1,通过串行输入引脚。
  • 要将数据向左移位,输入连接到最后一个触发器的与门8,通过输入D。

S0=0S_0 = 0S1=0S_1 = 0时,通用移位寄存器将处于锁定状态,即不执行任何操作。

S0=1S_0 = 1S1=0S_1 = 0时,它将数据向右移位,即执行右移操作。

S0=0S_0 = 0S1=1S_1 = 1时,它将数据向左移位,即执行左移操作。

S0=0S_0 = 0S1=0S_1 = 0时,寄存器执行并行加载操作。

alt text

由于它们在输入处有4×1多路复用器,通用移位寄存器可以在上述所有模式下运行。

移位寄存器的应用

寄存器在数字电子设备(如计算机)中用于:

  • 临时数据存储
  • 数据传输
  • 数据操作
  • 作为计数器

移位寄存器在计算机中用作存储元件。所有数字系统都需要以高效的方式存储大量数据,因此我们使用像RAM和其他类型的寄存器这样的存储元件。

许多数字系统的操作(如除法、乘法)通过使用寄存器来完成。数据通过串行移位寄存器和其他类型的寄存器传输。

计数器被用作数字时钟、频率计数器、二进制计数器等。

  • 串行输入 - 串行输出寄存器用于时间延迟。
  • 串行输入 - 并行输出寄存器用于将数据从串行形式转换为并行形式。因此,它们也被称为“串行到并行转换器”。
  • 并行输入 - 串行输出寄存器用于将数据从并行形式转换为串行形式。因此,它们也被称为“并行到串行转换器”。

延迟线

引入延迟线是移位寄存器最重要的用途之一。串行输入 - 串行输出移位寄存器用于为数字电路产生时间延迟。时间延迟可以通过以下公式计算。

Δt=N×1fc\Delta t = N \times \frac{1}{f_c}

其中NN表示级数/触发器的数量,fcf_c表示时钟频率。

因此,输入脉冲在输出处被延迟了Δt\Delta t。时间延迟的量由移位寄存器中的触发器数量或时钟信号频率控制。

常见的移位寄存器集成电路(IC)

一般来说,移位寄存器在4000系列和7000系列集成电路(IC)中都有。

4000系列集成电路

  • IC 4006:18级移位寄存器
  • IC 4014:8级移位寄存器
  • IC 4015:双4级移位寄存器
  • IC 4021:8位静态移位寄存器
  • IC 40104:4位双向并行输入/并行输出(PIPO)移位寄存器
  • IC 40195:4位通用移位寄存器

7000系列集成电路

  • IC 7491:8位移位寄存器,串行输入,串行输出,门控输入
  • IC 7495:4位移位寄存器, 并行输入,并行输出,串行输入
  • IC 7496:5位并行输入/并行输出移位寄存器,异步预置
  • IC 7499:4位双向通用移位寄存器
  • IC 74164:8位并行输出串行移位寄存器,异步
  • IC 74165:8位串行移位寄存器, 并行加载,互补输出
  • IC 74166:并行加载8位移位寄存器
  • IC 74194:4位双向通用移位寄存器
  • IC 74198:8位双向通用移位寄存器
  • IC 74199:8位双向通用移位寄存器,带J-非K串行输入
  • IC 74291:4位通用移位寄存器,二进制上下计数器,同步
  • IC 74395:4位通用移位寄存器,三态输出
  • IC 74498:8位双向移位寄存器,带并行输入和三态输出
  • IC 74671:4位双向移位寄存器
  • IC 74673:16位串行输入串行输出移位寄存器,带输出存储寄存器
  • IC 74674:16位并行输入串行输出移位寄存器,带三态输出

在这些集成电路中,最常用的是:

  • 74HC595:串行输入并行输出移位寄存器
  • 74HC165:并行输入串行输出移位寄存器
  • 74HC194:4位双向通用移位寄存器
  • 74HC198:8位双向通用移位寄存器